diff --git a/drivers/pinctrl/broadcom/pinctrl-bcm283x.c b/drivers/pinctrl/broadcom/pinctrl-bcm283x.c
index 54928a6..5f5f3f3 100644
--- a/drivers/pinctrl/broadcom/pinctrl-bcm283x.c
+++ b/drivers/pinctrl/broadcom/pinctrl-bcm283x.c
@@ -125,9 +125,8 @@
 	struct udevice *pdev;
 
 	/* Create GPIO device as well */
-	ret = device_bind_offset(dev, lists_driver_lookup_name("gpio_bcm2835"),
-				 "gpio_bcm2835", NULL, dev_of_offset(dev),
-				 &pdev);
+	ret = device_bind(dev, lists_driver_lookup_name("gpio_bcm2835"),
+			  "gpio_bcm2835", NULL, dev_ofnode(dev), &pdev);
 	if (ret) {
 		/*
 		 * While we really want the pinctrl driver to work to make
diff --git a/drivers/pinctrl/meson/pinctrl-meson.c b/drivers/pinctrl/meson/pinctrl-meson.c
index 45a1ccf..c35e4c4 100644
--- a/drivers/pinctrl/meson/pinctrl-meson.c
+++ b/drivers/pinctrl/meson/pinctrl-meson.c
@@ -347,6 +347,7 @@
 	int na, ns;
 	char *name;
 
+	/* FIXME: Should use livetree */
 	na = fdt_address_cells(gd->fdt_blob, dev_of_offset(dev->parent));
 	if (na < 1) {
 		debug("bad #address-cells\n");
@@ -419,7 +420,8 @@
 	sprintf(name, "meson-gpio");
 
 	/* Create child device UCLASS_GPIO and bind it */
-	device_bind_offset(dev, priv->data->gpio_driver, name, NULL, gpio, &gpio_dev);
+	device_bind(dev, priv->data->gpio_driver, name, NULL,
+		    offset_to_ofnode(gpio), &gpio_dev);
 	dev_set_of_offset(gpio_dev, gpio);
 
 	return 0;
diff --git a/drivers/pinctrl/mscc/pinctrl-jr2.c b/drivers/pinctrl/mscc/pinctrl-jr2.c
index fc730b7..6de7a41 100644
--- a/drivers/pinctrl/mscc/pinctrl-jr2.c
+++ b/drivers/pinctrl/mscc/pinctrl-jr2.c
@@ -299,8 +299,8 @@
 	if (ret)
 		return ret;
 
-	ret = device_bind_offset(dev, &jr2_gpio_driver, "jr2-gpio", NULL,
-				 dev_of_offset(dev), NULL);
+	ret = device_bind(dev, &jr2_gpio_driver, "jr2-gpio", NULL,
+			  dev_ofnode(dev), NULL);
 
 	if (ret)
 		return ret;
diff --git a/drivers/pinctrl/mscc/pinctrl-luton.c b/drivers/pinctrl/mscc/pinctrl-luton.c
index 4fb1798..0adeef9 100644
--- a/drivers/pinctrl/mscc/pinctrl-luton.c
+++ b/drivers/pinctrl/mscc/pinctrl-luton.c
@@ -165,8 +165,8 @@
 	if (ret)
 		return ret;
 
-	ret = device_bind_offset(dev, &luton_gpio_driver, "luton-gpio", NULL,
-				 dev_of_offset(dev), NULL);
+	ret = device_bind(dev, &luton_gpio_driver, "luton-gpio", NULL,
+			  dev_ofnode(dev), NULL);
 
 	return 0;
 }
diff --git a/drivers/pinctrl/mscc/pinctrl-ocelot.c b/drivers/pinctrl/mscc/pinctrl-ocelot.c
index 12ecad7..4df5eef 100644
--- a/drivers/pinctrl/mscc/pinctrl-ocelot.c
+++ b/drivers/pinctrl/mscc/pinctrl-ocelot.c
@@ -181,8 +181,8 @@
 	if (ret)
 		return ret;
 
-	ret = device_bind_offset(dev, &ocelot_gpio_driver, "ocelot-gpio", NULL,
-				 dev_of_offset(dev), NULL);
+	ret = device_bind(dev, &ocelot_gpio_driver, "ocelot-gpio", NULL,
+			  dev_ofnode(dev), NULL);
 
 	return ret;
 }
diff --git a/drivers/pinctrl/mscc/pinctrl-serval.c b/drivers/pinctrl/mscc/pinctrl-serval.c
index 93b31d20..2cef5df 100644
--- a/drivers/pinctrl/mscc/pinctrl-serval.c
+++ b/drivers/pinctrl/mscc/pinctrl-serval.c
@@ -209,8 +209,8 @@
 	if (ret)
 		return ret;
 
-	ret = device_bind_offset(dev, &serval_gpio_driver, "serval-gpio", NULL,
-				 dev_of_offset(dev), NULL);
+	ret = device_bind(dev, &serval_gpio_driver, "serval-gpio", NULL,
+			  dev_ofnode(dev), NULL);
 
 	if (ret)
 		return ret;
diff --git a/drivers/pinctrl/mscc/pinctrl-servalt.c b/drivers/pinctrl/mscc/pinctrl-servalt.c
index 9bbc769..37ce52c 100644
--- a/drivers/pinctrl/mscc/pinctrl-servalt.c
+++ b/drivers/pinctrl/mscc/pinctrl-servalt.c
@@ -245,8 +245,8 @@
 	if (ret)
 		return ret;
 
-	ret = device_bind_offset(dev, &servalt_gpio_driver, "servalt-gpio", NULL,
-				 dev_of_offset(dev), NULL);
+	ret = device_bind(dev, &servalt_gpio_driver, "servalt-gpio", NULL,
+			  dev_ofnode(dev), NULL);
 
 	if (ret)
 		return ret;
diff --git a/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c b/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c
index 7bbeb41..17d7603 100644
--- a/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c
+++ b/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c
@@ -547,13 +547,14 @@
 	int subnode;
 	char *name;
 
-	/* Lookup GPIO driver */
+	/* FIXME: Should not need to lookup GPIO uclass */
 	drv = lists_uclass_lookup(UCLASS_GPIO);
 	if (!drv) {
 		puts("Cannot find GPIO driver\n");
 		return -ENOENT;
 	}
 
+	/* FIXME: Use livtree and check the result of device_bind() below */
 	fdt_for_each_subnode(subnode, blob, node) {
 		if (fdtdec_get_bool(blob, subnode, "gpio-controller")) {
 			ret = 0;
@@ -567,9 +568,8 @@
 	sprintf(name, "armada-37xx-gpio");
 
 	/* Create child device UCLASS_GPIO and bind it */
-	device_bind_offset(parent, &armada_37xx_gpio_driver, name, NULL,
-			   subnode, &dev);
-	dev_set_of_offset(dev, subnode);
+	device_bind(parent, &armada_37xx_gpio_driver, name, NULL,
+		    offset_to_ofnode(subnode), &dev);
 
 	return 0;
 }
